package ch.akuhn.util; import java.util.Iterator; public class Cycle { /** * Iterate indefinitely over <code>iterable</code>. * */ public static final <E> Iterable<E> forever(final Iterable<E> iterable) { return new Iterable<E>() { public Iterator<E> iterator() { return new Iterator<E>() { private Iterator<E> it = iterable.iterator(); public boolean hasNext() { if (!it.hasNext()) it = iterable.iterator(); return it.hasNext(); } public E next() { if (!it.hasNext()) it = iterable.iterator(); return it.next(); } public void remove() { it.remove(); } }; } }; } }